package com.zmn.plat.manager.dictionary;

import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.zmn.plat.model.vo.mast.MasterMenuDTO;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

/**
 * 描述：工程师菜单字典
 *
 * @author wangjie
 * @since 2018/10/18 14:51
 */
public class MasterMenuDict {

    public static HashMap<String, String> getLDDUri() {
        HashMap<String, String> hashMap = Maps.newHashMap();
        hashMap.put("dev", "https://local-dms.xiujiadian.com:11413/bonus/swicthconfig/config.action");
        hashMap.put("test", "https://test-dms.xiujiadian.com/bonus/swicthconfig/config.action");
        hashMap.put("prod", "https://dms.xiujiadian.com/bonus/swicthconfig/config.action");
        return hashMap;
    }

    public static final String EDIT = "edit";
    public static final String MASTER_TOOL = "masterTool";
    public static final String CONTRACT = "contract";
    public static final String INSURANCE = "insurance";
    public static final String MAST_SKILL = "mastSkill";
    public static final String ORDER_QUANTITY = "orderQuantity";
    public static final String SCOPE = "scope";
    public static final String WAITING = "waiting";
    public static final String WELCOME = "welcome";
    public static final String WELCOME_AUDIT = "welcomeAudit";
    public static final String LEAVE_APPLY = "leaveApply";
    public static final String LEAVE_AUDIT = "leaveAudit";
    public static final String LEAVE_CANCEL = "leaveCancel";
    public static final String TRANSFER_APPLY = "transferApply";
    public static final String TRANSFER_AUDIT = "transferAudit";
    public static final String LEAVE_OFFICE_APPLY = "leaveOfficeApply";
    public static final String LEAVE_OFFICE_AUDIT = "leaveOfficeAudit";
    public static final String STOP_ORDER = "stopOrder";
    public static final String RESTORE_ORDER = "restoreOrder";
    public static final String DETAILS = "details";
    public static final String DEPARTURE = "departure";
    public static final String RESET_PASSWORD = "resetPassword";
    public static final String UNIONPAY_CONFIG = "unionpayConfig";

    /**
     * 描述: sass 工程师接入所添加的菜单按钮
     *
     * @author wangjie
     * @since 2019/8/15
     **/
    public static final String MASTER_SEND_ORDER_CONFIG = "masterSendOrderConfig";

    public static final String ZMN_ENGINEER_ORDER_CONFIG = "zmnEngineerOrderConfig";

    /**
     * 描述: 垒多多配置
     *
     * @author wangjie
     * @since 2019/11/6
     **/
    public static final String LDD_CONFIG = "lddConfig";


    /**
     * 描述: 根据工程师id获取工程师菜单列表初始化
     *
     * @return java.util.List<com.zmn.plat.model.vo.mast.MasterMenuDTO>
     * @author wangjie
     * @since 16:51 2019/2/1
     **/
    public static List<MasterMenuDTO> getMasterMenuList() {

        ArrayList<MasterMenuDTO> menuList = Lists.newArrayListWithExpectedSize(20);
        menuList.add(new MasterMenuDTO("/mast/master/addEditView.action", "信息修改", EDIT));
        menuList.add(new MasterMenuDTO("/mast/mastTool/addEditView.action", "工程师工具", MASTER_TOOL));
        menuList.add(new MasterMenuDTO("/mast/contract/addEditView.action", "工程师合同", CONTRACT));
        menuList.add(new MasterMenuDTO("/mast/insurance/addEditView.action", "工程师保险", INSURANCE));
//        menuList.add(new MasterMenuDTO("/mast/skill/addEditView.action", "工程师技能", MAST_SKILL));
//        menuList.add(new MasterMenuDTO("/mast/master/config/addAndEdit.action", "接单数量", ORDER_QUANTITY));
//        menuList.add(new MasterMenuDTO("/mast/scope/addEditView.action", "服务范围", SCOPE));
        menuList.add(new MasterMenuDTO("/mast/master/masterWaitingView.action", "工程师待岗", WAITING));
        menuList.add(new MasterMenuDTO("/mast/become/masterMastBecomeView.action", "工程师转正", WELCOME));
        menuList.add(new MasterMenuDTO("/mast/become/auditMastBecomeView.action", "转正审核", WELCOME_AUDIT));
        menuList.add(new MasterMenuDTO("/mast/leave/masterLeaveApplyView.action", "请假申请", LEAVE_APPLY));
        menuList.add(new MasterMenuDTO("/mast/leave/masterLeaveAuditView.action", "请假审核", LEAVE_AUDIT));
        menuList.add(new MasterMenuDTO("/mast/leave/masterLeaveCancelView.action", "取消请假", LEAVE_CANCEL));
        menuList.add(new MasterMenuDTO("/mast/transfer/transferApplyView.action", "工程师调岗", TRANSFER_APPLY));
        menuList.add(new MasterMenuDTO("/mast/transfer/auditTransferView.action", "调岗审核", TRANSFER_AUDIT));
        menuList.add(new MasterMenuDTO("/mast/leaveOffice/leaveOfficeApplyView.action", "离职申请", LEAVE_OFFICE_APPLY));
        menuList.add(new MasterMenuDTO("/mast/leaveOffice/leaveOfficeAuditView.action", "离职审核", LEAVE_OFFICE_AUDIT));
        menuList.add(new MasterMenuDTO("/mast/stopOrder/startStopOrderView.action", "停止接单", STOP_ORDER));
        menuList.add(new MasterMenuDTO("/mast/stopOrder/endStopOrderView.action", "恢复接单", RESTORE_ORDER));
        menuList.add(new MasterMenuDTO("/mast/master/masterDetails.action", "工程师详情", DETAILS));

        menuList.add(new MasterMenuDTO("/mast/master/zmnMasterResetPassword.action", "重置密码", RESET_PASSWORD));
        menuList.add(new MasterMenuDTO("/mast/master/temporaryPassword.action", "临时密码", TEMPORARY_PASSWORD));

        menuList.add(new MasterMenuDTO("/mast/unionpay/unionpayConfig.action", "银联配置", UNIONPAY_CONFIG));

        menuList.add(new MasterMenuDTO("/engineer/take/order/list.action", "接单配置", ZMN_ENGINEER_ORDER_CONFIG));

        menuList.add(new MasterMenuDTO("/bonus/swicthconfig/config.action", "垒多多配置", LDD_CONFIG));

        return menuList;
    }


    public static final String TEMPORARY_PASSWORD = "temporaryPassword";

    /**
     * 描述: 初始化yexy工程师菜单按钮
     *
     * @return java.util.List<com.zmn.plat.model.vo.mast.MasterMenuDTO>
     * @author wangjie
     * @since 11:25 2019/5/7
     **/
    public static List<MasterMenuDTO> getYeyxMasterMenuList() {
        ArrayList<MasterMenuDTO> menuList = Lists.newArrayListWithExpectedSize(9);
        menuList.add(new MasterMenuDTO("/mast/master/addEditView.action", "信息修改", EDIT, true));
//        menuList.add(new MasterMenuDTO("/mast/skill/addEditView.action", "工程师技能", MAST_SKILL, true));
//        menuList.add(new MasterMenuDTO("/mast/scope/addEditView.action", "服务范围", SCOPE, true));
        menuList.add(new MasterMenuDTO("/mast/leave/masterLeaveApplyView.action", "请假申请", LEAVE_APPLY, true));
        menuList.add(new MasterMenuDTO("/mast/leave/masterLeaveCancelView.action", "取消请假", LEAVE_CANCEL, true));
        menuList.add(new MasterMenuDTO("/mast/transfer/transferApplyView.action", "工程师调岗", TRANSFER_APPLY, true));
        menuList.add(new MasterMenuDTO("/mast/yeyx/leaveOffice/departure.action", "工程师离职", DEPARTURE, true));
        menuList.add(new MasterMenuDTO("/mast/master/masterDetails.action", "工程师详情", DETAILS, true));

        menuList.add(new MasterMenuDTO("/mast/yeyx/master/resetPassword.action", "重置密码", RESET_PASSWORD, true));
        menuList.add(new MasterMenuDTO("/mast/yeyx/master/yeyxSetTempPasswordToRedis.action", "临时密码", TEMPORARY_PASSWORD, true));

        menuList.add(new MasterMenuDTO("/engineer/take/order/list.action", "接单配置", ZMN_ENGINEER_ORDER_CONFIG, true));

        menuList.add(new MasterMenuDTO("/bonus/swicthconfig/config.action", "垒多多配置", LDD_CONFIG, true));
        return menuList;
    }

    /**
     * 描述: 初始化sass工程师菜单按钮
     *
     * @return java.util.List<com.zmn.plat.model.vo.mast.MasterMenuDTO>
     * @author wangjie
     * @since 2019/8/15
     **/
    @SuppressWarnings("Duplicates")
    public static List<MasterMenuDTO> getSassMasterMenu() {
        ArrayList<MasterMenuDTO> menuList = Lists.newArrayListWithExpectedSize(8);
        menuList.add(new MasterMenuDTO("/sass/master/addEditView.action", "信息修改", EDIT, true));
        menuList.add(new MasterMenuDTO("/mast/saas/master/masterDetails.action", "工程师详情", DETAILS, true));
//        menuList.add(new MasterMenuDTO("/sass/master/master_skill.action", "派单配置", MASTER_SEND_ORDER_CONFIG, true));
        menuList.add(new MasterMenuDTO("/mast/sass/leave/masterLeaveApplyView.action", "请假申请", LEAVE_APPLY, true));
        menuList.add(new MasterMenuDTO("/mast/saas/leave/masterLeaveCancelView_yeyx.action", "取消请假", LEAVE_CANCEL, true));
        menuList.add(new MasterMenuDTO("/mast/saas/transfer/transferApplyView.action", "工程师调岗", TRANSFER_APPLY, true));
        menuList.add(new MasterMenuDTO("/mast/saas/leaveOffice/masterLeaveOffice.action", "工程师离职", DEPARTURE, true));

        menuList.add(new MasterMenuDTO("/mast/sass/master/resetPassword.action", "重置密码", RESET_PASSWORD, true));
        menuList.add(new MasterMenuDTO("/sass/master/saasSetTempPasswordToRedis.action", "临时密码", TEMPORARY_PASSWORD, true));

        menuList.add(new MasterMenuDTO("/engineer/take/order/list.action", "接单配置", ZMN_ENGINEER_ORDER_CONFIG, true));

        menuList.add(new MasterMenuDTO("/bonus/swicthconfig/config.action", "垒多多配置", LDD_CONFIG, true));
        return menuList;
    }

    /**
     * 描述: 初始化cnhb工程师菜单按钮
     *
     * @return java.util.List<com.zmn.plat.model.vo.mast.MasterMenuDTO>
     * @author wangjie
     * @since 2019/8/15
     **/
    @SuppressWarnings("Duplicates")
    public static List<MasterMenuDTO> getCnhbMasterMenu() {
        ArrayList<MasterMenuDTO> menuList = Lists.newArrayListWithExpectedSize(8);
        menuList.add(new MasterMenuDTO("/cnhb/master/addEditView.action", "信息修改", EDIT, true));
        menuList.add(new MasterMenuDTO("/mast/cnhb/master/masterDetails.action", "工程师详情", DETAILS, true));
//        menuList.add(new MasterMenuDTO("/cnhb/master/master_skill.action", "派单配置", MASTER_SEND_ORDER_CONFIG, true));
        menuList.add(new MasterMenuDTO("/mast/cnhb/leave/masterLeaveApplyView.action", "请假申请", LEAVE_APPLY, true));
        menuList.add(new MasterMenuDTO("/mast/cnhb/leave/masterLeaveCancelView_yeyx.action", "取消请假", LEAVE_CANCEL, true));
        menuList.add(new MasterMenuDTO("/mast/cnhb/transfer/transferApplyView.action", "工程师调岗", TRANSFER_APPLY, true));
        menuList.add(new MasterMenuDTO("/mast/cnhb/leaveOffice/masterLeaveOffice.action", "工程师离职", DEPARTURE, true));

        menuList.add(new MasterMenuDTO("/cnhb/master/resetPassword.action", "重置密码", RESET_PASSWORD, true));
        menuList.add(new MasterMenuDTO("/cnhb/master/cnhbSetTempPasswordToRedis.action", "临时密码", TEMPORARY_PASSWORD, true));

        menuList.add(new MasterMenuDTO("/engineer/take/order/list.action", "接单配置", ZMN_ENGINEER_ORDER_CONFIG, true));

        menuList.add(new MasterMenuDTO("/bonus/swicthconfig/config.action", "垒多多配置", LDD_CONFIG, true));
        return menuList;

    }
}